const request = require('supertest');
const express = require('express');
const bodyParser = require('body-parser');
const goodsRouter = require('../routes/goods');

// 创建测试应用
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/api/goods', goodsRouter);

// 测试查询商品列表
async function testGoodsList() {
  console.log('开始测试商品列表查询...');
  
  try {
    // 测试基本的商品列表查询
    const response = await request(app)
      .post('/api/goods/goodsList')
      .send({
        page: 1,
        pageSize: 10
      })
      .expect('Content-Type', /json/);
    
    console.log('测试结果:', response.statusCode);
    console.log('响应数据:', response.body);
    
    if (response.statusCode === 200) {
      console.log('✓ 商品列表查询成功');
      console.log(`✓ 总共获取到 ${response.body.data.list.length} 个商品`);
      console.log(`✓ 数据库中共有 ${response.body.data.total} 个商品`);
      
      // 检查是否返回了期望的数据结构
      if (response.body.data.list.length > 0) {
        const firstItem = response.body.data.list[0];
        console.log('\n✓ 第一个商品数据结构检查:');
        console.log(`  - 商品ID: ${firstItem.id}`);
        console.log(`  - 商品标题: ${firstItem.title}`);
        console.log(`  - 商品价格: ${firstItem.price.current}`);
        console.log(`  - 商品类型: ${firstItem.type}`);
      }
    } else {
      console.error('✗ 商品列表查询失败');
    }
    
  } catch (error) {
    console.error('测试过程中发生错误:', error.message);
    if (error.response) {
      console.error('错误响应:', error.response.body);
    }
  }
}

// 运行测试
testGoodsList().then(() => {
  console.log('\n测试完成！');
});